@charset "utf-8";
body {
  font-family: sans-serif !important;
}

/*-----------------------------------------------
	title
-----------------------------------------------*/
.mainTitle{
	margin-bottom:8em;
	text-align: center;
	font-family: 'Abel', sans-serif;
	letter-spacing:0.05em;
}
.mainTitle h4{
	position:relative;
	font-size:32px;
	line-height: 2.4;
}

.mainTitle h4:before {
  content: '';
  position: absolute;
  bottom: 0;
  display: inline-block;
  width: 40%;
  height: 1px;
	left: 50%;
	background-color: #fff;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
	
}
.mainTitle p.name{
	font-size:18px;
	padding-top: 1em;
	color: #666;
	
}
.topMv{
	position:fixed;
	width:100%;
	height:100%;
	overflow:hidden;
	background-color:#000;
}

.topMvArea{
	position:relative;
	width:100%;
	height:100%;
}
.mv-movie {
    position: absolute;
    width: 100vw;
    height: 100%;
    overflow: hidden;
	text-align: center;
}
.mv-video {
    position: absolute;
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    background: url(../img/top_mv_sum.jpg) no-repeat;
    background-size: cover;
	text-align: center;
	top: 50%;
	left: 50%;
	-webkit-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}
.topMv .spmv{
	display:none;
}
/*-----------------------------------------------
	topMain
-----------------------------------------------*/
.topMain{
	position: relative;
	width:100%;
	height:100%;
	min-height:700px;
}

.topMain h2{
	position:absolute;
	top: 50%;
  	left: 50%;
  	-webkit-transform: translate(-50%, -50%);
  	transform: translate(-50%, -50%);
	width:30%;
	z-index:2;
	
}
.topMain h2 img{
	width: 100%;
	height: auto;
}
.topMain .bg{
	position: absolute;
	width: 100%;
	height: 100%;
	background:rgba(0,0,0,0.6);
	top: 0;
	left: 0;
}
/*-----------------------------------------------
	subMain
-----------------------------------------------*/
.subMain{
	position: relative;
	padding: 25em 0 35em;
}
.subMain p.mainTx{
	font-weight:500;
	font-size:18px;
	letter-spacing:0.05em;
	line-height: 2.6;
	position: relative;
	z-index: 2;
	margin-left: 3em;
	
}
.subMain p.mainTx br.pc{
	display: none;
}
.subMain p.mainTx span{
	font-family: 'Abel', sans-serif;
	font-size: 110%;
}
.subMain .bg{
	position: absolute;
	width: 100%;
	height: 100%;
	background:rgba(0,0,0,0.6);
	top: 0;
	left: 0;
}
.topArea{
	position:relative;
	z-index:2;
	background-color:#000;
	padding-top: 10em;
}
.contents{
	padding-bottom: 20em;
	padding-top: 10em;

}
/*-----------------------------------------------
	pro
-----------------------------------------------*/
.pro{
	margin-bottom: 20em;
	padding-top: 10em;
}
.pro p.name{
	width: 55%;
	margin: 0 auto;
	
}
.pro p.name img{
	width: 100%;
	height: auto;
}
.pro p.im{
	width: 110%;
	margin-left: -5%;
}
/*-----------------------------------------------
	tec
-----------------------------------------------*/

.tec{
	padding:10em 0 0;
	margin-bottom: 10em;
}
.tec .mq{
	margin-bottom: 20em;
}
.tec .mq .area{
	position: relative;
}
.tec .mq p.mq_logo{
	position: absolute;
	left: 3em;
	width: 30%;
	top: 45%;
	
}
.tec .mq p.mq_logo img{
	width: 100%;
	height: auto;
	
}
.tec .mq p.mqTx{
	font-weight:600;
	font-size:18px;
	letter-spacing:0.05em;
	width: 50%;
	line-height: 2;
	margin-left: 50%;
	margin-top: -10em;
	
}
.tec .mq p.mqTx span{
	font-family: 'Abel', sans-serif;
	font-size: 110%;
}
.tec .mq p.im{
	width: 110%;
	margin-left: -10%;
}
.tec p.tecTitle{
	font-weight:600;
	font-size:20px;
	letter-spacing: 0.05em;
	text-align: center;
	margin-bottom: 8em;	
	line-height: 2;
}
.tec p.tecTitle span{
	background: linear-gradient(transparent 70%, #333 70%);
	padding: 0 0.5em;	
}
.tec p.tecTitle br{
	display: none;
}
/*---tec01*/
.tec ul.tec01{
	margin-bottom: 20em;
	
}
.tec ul.tec01 .tecBox{
	width: 40%;
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);

}
.tec ul.tec01 li:nth-child(even) .tecBox{
	right: 0;
	
}
.tec ul.tec01 p.title{
	font-weight:600;
	font-size:22px;
	letter-spacing:0.05em;
	margin-bottom: 1em;
}
.tec ul.tec01 p.tx{
	font-size: 15px;
	line-height: 2;
}
.tec ul.tec01 p.im{
	width: 50%;
}
.tec ul.tec01 li{
	margin-bottom: 8em;
	position: relative;
}
.tec ul.tec01 li:last-child{
	margin-bottom:0;
}

.tec ul.tec01 li:nth-child(odd) p.im{
	margin-left: 50%;
	
}

/*---tec02*/
.tec ul.tec02{
	margin-bottom: 15em;
	
}
.tec ul.tec02 .tecBox{
	width: 60%;
	float: left;
	padding-right: 5em;
}
.tec ul.tec02 p.title{
	font-weight:600;
	font-size:18px;
	letter-spacing:0.05em;
	margin-bottom: 1em;
}
.tec ul.tec02 p.tx{
	font-size: 15px;
	line-height: 2;
}
.tec ul.tec02 p.im{
	width: 40%;
	float: right;
}
.tec ul.tec02 p.im img{
	border: 1px solid #555;
}
.tec ul.tec02 li{
	margin-bottom: 5em;
}
.tec ul.tec02 li:last-child{
	margin-bottom:0;
}
/*-----------------------------------------------
	o_tec
-----------------------------------------------*/
.o_tec{
	padding:15em 0 10em;
	margin-bottom: 10em;
	background-image: url("../img/o_tec_bg.jpg");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
}
.o_tec .mainTitle_tec {
	margin-bottom: 15em;
	text-align: center;
	font-family: 'Abel', sans-serif;
	letter-spacing:0.05em;
}
.o_tec .mainTitle_tec h4{
	font-size: 42px;
	color: #666;
}
.o_tec p.tecName{
	font-family: 'Abel', sans-serif;
	letter-spacing:0.05em;
	font-size: 28px;
	line-height: 1.2;
}
.o_tec p.tecKana{
	font-size: 14px;
	margin-bottom: 1em;
}
.o_tec p.tx{
	font-size: 15px;
	line-height: 1.8;
}
.o_tec .tecBox{
	width: 60%;
	float: left;
	padding-right: 3em;
}
.o_tec p.im{
	float: right;
	width: 40%;
}
.o_tec ul{
	width: 94%;
	margin: 0 auto;
}
.o_tec li{
	margin-bottom: 8em;
}
.o_tec li:last-child{
	margin-bottom: 0;
}
.o_tec li:last-child .tecBox{
	width: 50%;
}
.o_tec li:last-child p.im{
	width: 50%;
}
/*-----------------------------------------------
	concept
-----------------------------------------------*/
.concept{
	padding:10em 0 0;
	margin-bottom: 20em;
}
.conceptTx{
	
}
p.conceptTitle{
	font-weight:600;
	font-size: 20px;
	letter-spacing: 0.05em;
	margin-bottom: 2em;
	line-height: 2;
	
}
p.conceptTitle span{
	background: linear-gradient(transparent 70%, #333 70%);	
	
}
.conceptTx{
	width: 90%;
	margin: 0 auto;
}
.conceptTx p{
	font-size: 15px;
	line-height: 2.6;
}
.conceptTx p.im{
	width: 80%;
	margin: 0 auto;
	padding-top: 5em;
}
.concept02 p.conceptTitle span{
	background: linear-gradient(transparent 70%, #915d02 70%);	
}
.concept01 .concept01 p.conceptTitle span{
	background: linear-gradient(transparent 70%, #7e1b20 70%);	
}
.concept ul{
	position: relative;
	margin-bottom: 8em;
}
.concept ul p.im{
	width: 110%;
}
.concept02 li:first-child{
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	right: 0;
}
.concept02 li:last-child{
	width: 50%;
}
.concept02 li:last-child p.im{
	margin-left: -5em;
	
}
.concept01 li:first-child{
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	left: 0;
}
.concept01 li:last-child{
	margin-left: 50%;
}
.concept01 li:last-child p.im{
	margin-left: 5em;
}
.conceptMain{
	padding: 20em 0 10em;
	margin-bottom: 10em;
	position: relative;
	
}
.concept01 .conceptMain p.conceptBg{
	background-image: url("../img/concept_main01_bg.jpg");
	background-position: left center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 60%;
	position: absolute;
	height: 100%;
	top: 0;
	right: 0;
	
}

.concept02 .conceptMain p.conceptBg{
	background-image: url("../img/concept_main02_bg.jpg");
	background-position: right center;
	background-repeat: no-repeat;
	background-size: cover;
	width: 60%;
	position: absolute;
	height: 100%;
	top: 0;
	right: auto;
	left: 0;
	
}
.concept01 .conceptMainBox{
	width: 50%;
	margin-left: -3em;
	position: relative;
	z-index: 2;
}

.concept02 .conceptMainBox{
	margin-left: 50%;
	margin-right: -3em;
	position: relative;
	z-index: 2;
	width: 50%;
}

.concept01,.concept02{
	position: relative;
	z-index: 2;
}
.concept02{
	margin-top: -5em;
}
.conceptMq{
	background-image: url("../img/concept_bg.jpg");
	background-repeat: no-repeat;
	background-position: center center;
	padding: 5em 0 10em;
	background-size: cover;
	margin-top: -15em;
	position: relative;
	z-index: 1;
}
.conceptMq p.im{
	width: 80%;
	margin: 0 auto;
}
/*-----------------------------------------------
	mv
-----------------------------------------------*/

.movie{
	padding:10em 0 0;
	margin-bottom: 10em;
	}
.movie ul{
	text-align:center;
	padding-top: 5em;
}
.movie ul li{
	width:46%;
	margin:0 1% 3em;
	vertical-align:top;
}
.movie ul li:first-child{
	width: 94%;
	margin:0 1% 5em;
	
}
.movie ul li:first-child .mv p.play{
	width:7%;
}
.movie ul li .mv p.play{
	width:12%;
}
.mvArea p.tx{
	font-size: 14px;
}
/*-----------------------------------------------
	COLUMN
-----------------------------------------------*/
.column{
	background-image: url("../img/column_bg.jpg");
	background-size: 100%;
	background-repeat: no-repeat;
	background-position: top center;
	padding-top: 15em;
	margin-bottom: 20em;
	
}
.columnArea{
	width: 94%;
	margin: 0 auto;
}
.column p.main{
	font-weight:600;
	text-align: center;
	letter-spacing: 0.15em;
	font-size: 28px;
}
.column p.title{
	font-weight:600;
	font-size:22px;
	letter-spacing:0.05em;
	margin-bottom: 3em;
}
.column p.ind{
	text-indent: 1em;
	font-size: 15px;
	line-height: 2.6;
}
.column ul{
	padding-top: 15em;
	margin-bottom: 5em;
}
.column li{
	display: inline-block;
	width: 49%;
	vertical-align:bottom;
}
.column li p.im{
	width: 120%;
	margin-left: 1em;
}
.column p.mm{
	width: 70%;
	margin: 0 auto;
	padding: 10em 0;
}
/*-----------------------------------------------
	IMP
-----------------------------------------------*/
.imp{
	background-image: url("../img/imp_bg.jpg");
	background-repeat: no-repeat;
	background-position: top center;
	padding: 20em 0;
	background-size: cover;
	margin-bottom: 20em;
	
}
.imp p.title{
	font-weight:600;
	font-size:22px;
	letter-spacing:0.05em;
	margin-bottom: 1em;
}

.imp p.impName{
	font-weight:600;
	font-size:18px;
	letter-spacing:0.1em;	
}
.imp p.tx{
	font-size: 15px;
	line-height: 2;
	padding: 1em 0;
}
.imp dl{
	margin-bottom: 5em;
	text-align: center;
}
.imp dt{
	display: inline-block;
	text-align: left;
	vertical-align: middle;
	width: 60%
}
.imp dd{
	display: inline-block;
	vertical-align: middle;
	width: 38%;
}

.imp ul{
	width: 84%;
	margin: 0 auto;
	padding-top: 10em;
}
.imp li{
	margin-bottom: 15em;
}
.imp li:last-child{
	margin-bottom: 0;
}

/*-----------------------------------------------
	LINEUP
-----------------------------------------------*/
.lineup{
	margin-bottom: 20em;
}
.lineup ul{
	text-align: center;
}
.lineup li{
	display: inline-block;
	width: 40%;
	margin: 0 2.5% 5em;
	text-align: left;
	vertical-align: top;
}
.lineup p.proName{
	font-family: 'Abel', sans-serif;
	letter-spacing:0.05em;
	font-size: 24px;
	line-height: 1.2;
	margin-bottom: 0.2em;
}
.lineup p.proName span{
	font-weight:400;
	font-size: 90%;
}
.lineup p.proCat{
	font-weight:600;
	font-size: 18px;
	margin-bottom: 0.5em;
}
.lineup p.proTx{
	font-size: 14px;
	line-height: 1.8;
}
.lineup p.mm{
	margin-bottom: 5em;
}
/*-----------------------------------------------
	SPEC
-----------------------------------------------*/
.spec{
	background-color: #111;
	padding-top: 15em;
	padding-bottom: 20em;
}
.specArea{
	padding-top: 5em;
}
.lineupTable{
  font-family: sans-serif;
}
.lineupTable th.name{
	font-size:16px;
	font-family: 'Abel', sans-serif;
	
}
.lineupTable th.name span{
	font-weight:400;
	font-size: 90%;
}
.spec .attention{
	padding-top:1em;
}
.spec .attention p{
	font-size:13px;
}
/*-----------------------------------------------
	last
-----------------------------------------------*/
.last{
	
	background-image: url("../img/last_bg.jpg");
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	padding: 30em 0 15em;
	position: relative;
	overflow: hidden;
}
.last .area{
	position: relative;
	
}
.last .bg{
	position: absolute;
	width: 100%;
	height: 110%;
	background:rgba(0,0,0,0.6);
	top: -2%;
	left: 0;
}
.last p.logo{
	position: relative;
	z-index: 2;
	width: 35%;
	margin-left: 2em;
}
.last p.logo img{
	width: 100%;
	height: auto;
}


/*-----------------------------------------------
	fade
-----------------------------------------------*/
.fadeIn_up {
  opacity:0;
  transition: all .5s;
}
.fadeIn_up.is-show {
  animation: fadeIn1 .5s ease-out forwards;
}


@keyframes fadeIn1{
	0%{
		opacity:0;
		transform: translate(0, 10%);
	}
	50%{
		opacity:0.5;
		transform: translate(0, 5%);
	}
	100%{
		opacity:1;
		transform: translate(0, 0);
	}
}
